package com.secsys.action;

import java.util.List;
import java.util.Map;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.secsys.dto.ModuleBean;
import com.secsys.model.TbBbsModule;
import com.secsys.service.impl.BbsModuleServiceImpl;

public class BbsModuleManagerAction {
	private BbsModuleServiceImpl bbsModuleService;
	private String[] moduleTh;
	private String[] baseModule;
    private String [] tepModule; 
    private String [] bmodule; 
    private String [] mmodule; 
	private String[] thChildModule;
	private String[] baseChildModule;
	 private String [] tepChildModule; 
	    public String[] getTepModule() {
		return tepModule;
	}

	public void setTepModule(String[] tepModule) {
		this.tepModule = tepModule;
	}

	public String[] getBmodule() {
		return bmodule;
	}

	public void setBmodule(String[] bmodule) {
		this.bmodule = bmodule;
	}

	public String[] getMmodule() {
		return mmodule;
	}

	public void setMmodule(String[] mmodule) {
		this.mmodule = mmodule;
	}

	public String[] getTepChildModule() {
		return tepChildModule;
	}

	public void setTepChildModule(String[] tepChildModule) {
		this.tepChildModule = tepChildModule;
	}

	public String[] getBchildModule() {
		return bchildModule;
	}

	public void setBchildModule(String[] bchildModule) {
		this.bchildModule = bchildModule;
	}

	public String[] getMchildModule() {
		return mchildModule;
	}

	public void setMchildModule(String[] mchildModule) {
		this.mchildModule = mchildModule;
	}

		private String [] bchildModule; 
	    private String [] mchildModule; 

	public String[] getModuleTh() {
		return moduleTh;
	}

	public void setModuleTh(String[] moduleTh) {
		this.moduleTh = moduleTh;
	}

	public String[] getBaseModule() {
		return baseModule;
	}

	public void setBaseModule(String[] baseModule) {
		this.baseModule = baseModule;
	}
 

	public String[] getThChildModule() {
		return thChildModule;
	}

	public void setThChildModule(String[] thChildModule) {
		this.thChildModule = thChildModule;
	}

	public String[] getBaseChildModule() {
		return baseChildModule;
	}

	public void setBaseChildModule(String[] baseChildModule) {
		this.baseChildModule = baseChildModule;
	}

	 
	public BbsModuleServiceImpl getBbsModuleService() {
		return bbsModuleService;
	}

	public void setBbsModuleService(BbsModuleServiceImpl bbsModuleService) {
		this.bbsModuleService = bbsModuleService;
	}

	/**
	 * 
	 * @Description 更新模块显示状态
	 * @return
	 * @throws Exception
	 */
	public String updateModuleInfo() throws Exception {
		/**技术板块**/
		   if(moduleTh!=null&&moduleTh.length>0){  //父类选中屏蔽,修改父类状态和子类状态
			        TbBbsModule module=bbsModuleService.getModuleByCodes("01_");
			        module.setStatue("SOX");
		            bbsModuleService.updateModuleStatue(module);
		            List  childList=bbsModuleService.queryChildModules("01_");
		                for(int i=0;i<childList.size();i++){  
		                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
		                	childModule.setStatue("SOX");
		                	bbsModuleService.updateModuleStatue(childModule);
		                }
		       }else{  //父类未选中
		    	   TbBbsModule module=bbsModuleService.getModuleByCodes("01_");
		    	   if(!module.getStatue().equals("SOA")){   //查询父类并更新
		    		   module.setStatue("SOA");
		    		   bbsModuleService.updateModuleStatue(module);
		    	   }
		    	   List  childList=bbsModuleService.queryChildModules("01_"); //获取子类
	                 if(thChildModule!=null&&thChildModule.length>0){   //包含禁用
	                	 for(int i=0;i<childList.size();i++){    //先执行一次初始化SOA
			                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
			                	childModule.setStatue("SOA");
			                	bbsModuleService.updateModuleStatue(childModule);
			                }
	                	    for(int i1=0;i1<thChildModule.length;i1++){  //遍历禁用卡
	                	    	           String code=thChildModule[i1];
	                	    	           TbBbsModule moduletemp=bbsModuleService.getModuleByCodes(code);
	                	    	           moduletemp.setStatue("SOX");
	                	    	           bbsModuleService.updateModuleStatue(moduletemp);
	                	    }
	                 }else{  //未包含禁用,统一初始化为可用
	                	 
			                for(int i=0;i<childList.size();i++){  
			                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
			                	childModule.setStatue("SOA");
			                	bbsModuleService.updateModuleStatue(childModule);
			                }
	                 }
			     
		       }
		   /**基本板块**/
		   if(baseModule!=null&&baseModule.length>0){  //父类选中屏蔽,修改父类状态和子类状态
		        TbBbsModule module=bbsModuleService.getModuleByCodes("02_");
		        module.setStatue("SOX");
	            bbsModuleService.updateModuleStatue(module);
	            List  childList=bbsModuleService.queryChildModules("02_");
	                for(int i=0;i<childList.size();i++){  
	                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
	                	childModule.setStatue("SOX");
	                	bbsModuleService.updateModuleStatue(childModule);
	                }
	       }else{  //父类未选中
	    	   TbBbsModule module=bbsModuleService.getModuleByCodes("02_");
	    	   if(!module.getStatue().equals("SOA")){   //查询父类并更新
	    		   module.setStatue("SOA");
	    		   bbsModuleService.updateModuleStatue(module);
	    	   }
	    	   List  childList=bbsModuleService.queryChildModules("02_"); //获取子类
                if(baseChildModule!=null&&baseChildModule.length>0){   //包含禁用
               	 for(int i=0;i<childList.size();i++){    //先执行一次初始化SOA
		                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
		                	childModule.setStatue("SOA");
		                	bbsModuleService.updateModuleStatue(childModule);
		                }
               	    for(int i1=0;i1<baseChildModule.length;i1++){  //遍历禁用卡
               	    	           String code=baseChildModule[i1];
               	    	           TbBbsModule moduletemp=bbsModuleService.getModuleByCodes(code);
               	    	           moduletemp.setStatue("SOX");
               	    	           bbsModuleService.updateModuleStatue(moduletemp);
               	    }
                }else{  //未包含禁用,统一初始化为可用
               	 
		                for(int i=0;i<childList.size();i++){  
		                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
		                	childModule.setStatue("SOA");
		                	bbsModuleService.updateModuleStatue(childModule);
		                }
                }
		     
	       }
		   /**实战贴图**/
		   if(tepModule!=null&&tepModule.length>0){  //父类选中屏蔽,修改父类状态和子类状态
			   System.out.println(tepModule.toString());
		        TbBbsModule module=bbsModuleService.getModuleByCodes("03_");
		        module.setStatue("SOX");
	            bbsModuleService.updateModuleStatue(module);
	            List  childList=bbsModuleService.queryChildModules("03_");
	                for(int i=0;i<childList.size();i++){  
	                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
	                	childModule.setStatue("SOX");
	                	bbsModuleService.updateModuleStatue(childModule);
	                }
	       }else{  //父类未选中
	    	   TbBbsModule module=bbsModuleService.getModuleByCodes("03_");
	    	   if(!module.getStatue().equals("SOA")){   //查询父类并更新
	    		   module.setStatue("SOA");
	    		   bbsModuleService.updateModuleStatue(module);
	    	   }
	    	   List  childList=bbsModuleService.queryChildModules("03_"); //获取子类
               if(tepChildModule!=null&&tepChildModule.length>0){   //包含禁用
              	 for(int i=0;i<childList.size();i++){    //先执行一次初始化SOA
		                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
		                	childModule.setStatue("SOA");
		                	bbsModuleService.updateModuleStatue(childModule);
		                }
              	    for(int i1=0;i1<tepChildModule.length;i1++){  //遍历禁用卡
              	    	           String code=baseChildModule[i1];
              	    	           TbBbsModule moduletemp=bbsModuleService.getModuleByCodes(code);
              	    	           moduletemp.setStatue("SOX");
              	    	           bbsModuleService.updateModuleStatue(moduletemp);
              	    }
               }else{  //未包含禁用,统一初始化为可用
              	 
		                for(int i=0;i<childList.size();i++){  
		                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
		                	childModule.setStatue("SOA");
		                	bbsModuleService.updateModuleStatue(childModule);
		                }
               }
		     
	       }
		   /**书籍下载**/
		   if(bmodule!=null&&bmodule.length>0){  //父类选中屏蔽,修改父类状态和子类状态
		        TbBbsModule module=bbsModuleService.getModuleByCodes("04_");
		        module.setStatue("SOX");
	            bbsModuleService.updateModuleStatue(module);
	            List  childList=bbsModuleService.queryChildModules("04_");
	                for(int i=0;i<childList.size();i++){  
	                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
	                	childModule.setStatue("SOX");
	                	bbsModuleService.updateModuleStatue(childModule);
	                }
	       }else{  //父类未选中
	    	   TbBbsModule module=bbsModuleService.getModuleByCodes("04_");
	    	   if(!module.getStatue().equals("SOA")){   //查询父类并更新
	    		   module.setStatue("SOA");
	    		   bbsModuleService.updateModuleStatue(module);
	    	   }
	    	   List  childList=bbsModuleService.queryChildModules("04_"); //获取子类
              if(bchildModule!=null&&bchildModule.length>0){   //包含禁用
             	 for(int i=0;i<childList.size();i++){    //先执行一次初始化SOA
		                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
		                	childModule.setStatue("SOA");
		                	bbsModuleService.updateModuleStatue(childModule);
		                }
             	    for(int i1=0;i1<bchildModule.length;i1++){  //遍历禁用卡
             	    	           String code=baseChildModule[i1];
             	    	           TbBbsModule moduletemp=bbsModuleService.getModuleByCodes(code);
             	    	           moduletemp.setStatue("SOX");
             	    	           bbsModuleService.updateModuleStatue(moduletemp);
             	    }
              }else{  //未包含禁用,统一初始化为可用
             	 
		                for(int i=0;i<childList.size();i++){  
		                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
		                	childModule.setStatue("SOA");
		                	bbsModuleService.updateModuleStatue(childModule);
		                }
              }
		     
	       }
		   /**站务**/
		   if(mmodule!=null&&mmodule.length>0){  //父类选中屏蔽,修改父类状态和子类状态
		        TbBbsModule module=bbsModuleService.getModuleByCodes("05_");
		        module.setStatue("SOX");
	            bbsModuleService.updateModuleStatue(module);
	            List  childList=bbsModuleService.queryChildModules("05_");
	                for(int i=0;i<childList.size();i++){  
	                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
	                	childModule.setStatue("SOX");
	                	bbsModuleService.updateModuleStatue(childModule);
	                }
	       }else{  //父类未选中
	    	   TbBbsModule module=bbsModuleService.getModuleByCodes("05_");
	    	   if(!module.getStatue().equals("SOA")){   //查询父类并更新
	    		   module.setStatue("SOA");
	    		   bbsModuleService.updateModuleStatue(module);
	    	   }
	    	   List  childList=bbsModuleService.queryChildModules("05_"); //获取子类
              if(mchildModule!=null&&mchildModule.length>0){   //包含禁用
             	 for(int i=0;i<childList.size();i++){    //先执行一次初始化SOA
		                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
		                	childModule.setStatue("SOA");
		                	bbsModuleService.updateModuleStatue(childModule);
		                }
             	    for(int i1=0;i1<mchildModule.length;i1++){  //遍历禁用卡
             	    	           String code=baseChildModule[i1];
             	    	           TbBbsModule moduletemp=bbsModuleService.getModuleByCodes(code);
             	    	           moduletemp.setStatue("SOX");
             	    	           bbsModuleService.updateModuleStatue(moduletemp);
             	    }
              }else{  //未包含禁用,统一初始化为可用
             	 
		                for(int i=0;i<childList.size();i++){  
		                	TbBbsModule childModule=(TbBbsModule)childList.get(i);
		                	childModule.setStatue("SOA");
		                	bbsModuleService.updateModuleStatue(childModule);
		                }
              }
		     
	       }
		   ServletActionContext.getRequest().setAttribute("moduleUpdateMsg", "消息提示：恭喜,操作成功!");
		   
		return "queryModuleStatue";
	}
}
